COMP 512: Advanced Compiler Construction

Professor Keith D. Cooper
Department of Computer Science
Rice University
Houston, Texas, USA
Spring 2012: Room 1042 Duncan Hall Monday, Wednesday, Friday, 10am

This page contains both the PDF format copies of the lecture notes, and a lecture-by-lecture bibliography for the class. Some of the reading materials are available on the Rice Only readings page; others will require you to visit the ACM Digital Library or the university's library.

Finally, you can find most of the papers on Google Scholar. Look up the paper by author or title, then check to see if it has a copy of the actual document.

Spring 2012 Lecture Notes

  1. Introduction to Optimization, and 2-up version
  2. Experience Paper:   The Fortran H Compiler, and 2-up version
  3. Experience Paper:   The IBM PL.8 Compiler, and 2-up version
  4. Experience Paper:   The Swift Java Compiler, and 2-up version
  5. Terminology, and 2-up version   <= Brief discussion of class project, with more on the Project Page
  6. Local Optimization, and 2-up version    If you printed off Lecture 5 last class, these slides were in that file. They have now been separated, but don't both to reprint them.

  7. Superlocal Value Numbering, a Regional Optimization, and 2-up version
  8. Global Data Flow Analysis with Dominators and Dominator-based Value Numbering as examples, and 2-up version
  9. Global Optimization, Eliminating Unnecessary Stores and Block Placement, and 2-up version
  10. Interprocedural Optimization: Inline Substitition, and 2-up version
  11. Interprocedural Optimization II: Procedure Placement, and 2-up version
  12. A Taxonomy of Transformations, along with a discussion of the lab, and 2-up version
  13. A Deeper Look at Data-Flow Analysis, and 2-up version     (2 lectures)
  14. Proliferation of Data-Flow Problems, and 2-up version
  15. Information Chains, and 2-up version
  16. Construction of Static Single Assignment Form (SSA), and 2-up version
  17. Translating Out of SSA Form + DEAD, and 2-up version
    This lecture also includes DEAD, an algorithm that eliminates useless computations, based on the algorithm in the original SSA paper.
  18. A Second Take at Translating Out of SSA Form + DEAD, with worked examples, and 2-up version
  19. Eliminating Useless Control Flow, and 2-up version (The algorithm is referred to as CLEAN.)
  20. Constant Propagation on SSA Form, and 2-up version
  21. Introduction to Code Motion, and 2-up version
  22. Lazy Code Motion, and 2-up version
  23. Code Motion of Control-Structures, and 2-up version
  24. Detecting Equality of Variables in Programs, and 2-up version
  25. Algebraic Reassociation of Expressions, and 2-up version
    Example from the paper, and 2-up version
  26. Algebraic Reassociation, Revisited, and 2-up version
  27. Operator Strength Reduction, and 2-up version
  28. Replication and Consolidation, and 2-up version    (somewhat of a grab bag of tricks)
  29. Loop Optimization, an overview, and 2-up version
  30. Interprocedural Analysis, and 2-up version

This site is maintained by Keith D. Cooper.
He is a terrible e-mail correspondent.